package com.huangfuyi.process.managers;

import com.huangfuyi.process.entity.instance.EPInstanceEntity;
import com.huangfuyi.process.entity.model.EPModelEntity;
import com.huangfuyi.process.entity.node.EPNodeEntity;
import com.huangfuyi.process.entity.node.EPNodeNextConfigEntity;
import com.huangfuyi.process.entity.running.EPParamEntity;
import com.huangfuyi.process.entity.running.EPRunningEntity;
import com.huangfuyi.process.service.EPCoreExecutorService;
import com.huangfuyi.process.service.EPCoreInstanceService;
import com.huangfuyi.process.service.EPCoreModelService;
import com.huangfuyi.process.service.EPCoreRunningService;

public interface EPServiceManager<T extends EPInstanceEntity, E extends EPModelEntity, K extends EPNodeEntity, V extends EPNodeNextConfigEntity, M extends EPRunningEntity, N extends EPParamEntity> {

    EPCoreExecutorService getExecutorService();

    EPCoreModelService<E, K, V> getModelService();

    EPCoreInstanceService<T, E, K, V, M, N> getInstanceService();

    EPCoreRunningService<M, N> getRunningService();
}
